package com.zlx.mall.base.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.Instant;

/**
 * <p>
 * 埋点数据表
 * </p>
 *
 * @author taotao
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@TableName("`basic_point_data`")
public class BasicPointData implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId(value = "`id`", type = IdType.AUTO)
    private Long id;
    /** Trace ID */
    @TableField("`trace_id`")
    private String traceId;
    /** APP标识 */
    @TableField("`app_code`")
    private String appCode;
    /** APP包渠道 */
    @TableField("`channel_code`")
    private String channelCode;
    /** 用户id */
    @TableField("`user_id`")
    private String userId;
    /** 事件时间戳 */
    @TableField("`event_timestamp`")
    private String eventTimestamp;
    /** 事件类型: [p:页面事件, c:点击事件] */
    @TableField("`event_type`")
    private String eventType;
    /** 埋点页面标识 */
    @TableField("`page_code`")
    private String pageCode;
    /** 页面事件数据id */
    @TableField("`page_data_id`")
    private String pageDataId;
    /** 点击事件编码 */
    @TableField("`click_code`")
    private String clickCode;
    /** 点击事件数据id */
    @TableField("`click_data_id`")
    private String clickDataId;
    /** 点击事件其他相关数据id */
    @TableField("`click_other_id`")
    private String clickOtherId;
    /** 点击事件所属模块数据id, 目前仅模块首页才有此值 */
    @TableField("`click_model_id`")
    private String clickModelId;
    /** 屏幕宽高, 格式为:宽x高, 如:375x650 */
    @TableField("`screen`")
    private String screen;
    /** 请求IP */
    @TableField("`remote_address`")
    private String remoteAddress;
    /** 设备ID ios取的是生产的UUID, android取的是IMEI码或生产UUID */
    @TableField("`device_id`")
    private String deviceId;
    /** app版本号, 三段式, 如1.0.0 */
    @TableField("`apk_version`")
    private String apkVersion;
    /** 网络类型, 如:3g, 4g wifi */
    @TableField("`network_type`")
    private String networkType;
    /** 操作系统 android, ios, h5 */
    @TableField("`os_type`")
    private String osType;
    /** 操作系统版本, 例如 8.1.1 */
    @TableField("`os_version`")
    private String osVersion;
    /** 操作系统语言 */
    @TableField("`os_language`")
    private String osLanguage;
    /** 设备型号, 例如 iphone6; 如果是PC, 则代表浏览器版本 */
    @TableField("`os_model`")
    private String osModel;
    /** 经度; PC端没有 */
    @TableField("`longitude`")
    private String longitude;
    /** 纬度; PC端没有 */
    @TableField("`latitude`")
    private String latitude;
    /** 行为发生的页面url, h5时传 */
    @TableField("`page_url`")
    private String pageUrl;
    /** 浏览器User-Agent字符串, 仅H5页面时获取 */
    @TableField("`user_agent`")
    private String userAgent;
    /** Extra */
    @TableField("`extra`")
    private String extra;
    /** 保存时间 */
    @TableField("`create_timestamp`")
    private Instant createTimestamp;

    /** 主键 */
    public static final String ID = "id";
    /** Trace ID */
    public static final String TRACE_ID = "trace_id";
    /** APP标识 */
    public static final String APP_CODE = "app_code";
    /** APP包渠道 */
    public static final String CHANNEL_CODE = "channel_code";
    /** 用户id */
    public static final String USER_ID = "user_id";
    /** 事件时间戳 */
    public static final String EVENT_TIMESTAMP = "event_timestamp";
    /** 事件类型: [p:页面事件, c:点击事件] */
    public static final String EVENT_TYPE = "event_type";
    /** 埋点页面标识 */
    public static final String PAGE_CODE = "page_code";
    /** 页面事件数据id */
    public static final String PAGE_DATA_ID = "page_data_id";
    /** 点击事件编码 */
    public static final String CLICK_CODE = "click_code";
    /** 点击事件数据id */
    public static final String CLICK_DATA_ID = "click_data_id";
    /** 点击事件其他相关数据id */
    public static final String CLICK_OTHER_ID = "click_other_id";
    /** 点击事件所属模块数据id, 目前仅模块首页才有此值 */
    public static final String CLICK_MODEL_ID = "click_model_id";
    /** 屏幕宽高, 格式为:宽x高, 如:375x650 */
    public static final String SCREEN = "screen";
    /** 请求IP */
    public static final String REMOTE_ADDRESS = "remote_address";
    /** 设备ID ios取的是生产的UUID, android取的是IMEI码或生产UUID */
    public static final String DEVICE_ID = "device_id";
    /** app版本号, 三段式, 如1.0.0 */
    public static final String APK_VERSION = "apk_version";
    /** 网络类型, 如:3g, 4g wifi */
    public static final String NETWORK_TYPE = "network_type";
    /** 操作系统 android, ios, h5 */
    public static final String OS_TYPE = "os_type";
    /** 操作系统版本, 例如 8.1.1 */
    public static final String OS_VERSION = "os_version";
    /** 操作系统语言 */
    public static final String OS_LANGUAGE = "os_language";
    /** 设备型号, 例如 iphone6; 如果是PC, 则代表浏览器版本 */
    public static final String OS_MODEL = "os_model";
    /** 经度; PC端没有 */
    public static final String LONGITUDE = "longitude";
    /** 纬度; PC端没有 */
    public static final String LATITUDE = "latitude";
    /** 行为发生的页面url, h5时传 */
    public static final String PAGE_URL = "page_url";
    /** 浏览器User-Agent字符串, 仅H5页面时获取 */
    public static final String USER_AGENT = "user_agent";
    /** Extra */
    public static final String EXTRA = "extra";
    /** 保存时间 */
    public static final String CREATE_TIMESTAMP = "create_timestamp";
    public static final String TABLE_NAME = "`basic_point_data`";
}
